package com.vito.oa.act.statistics;

import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.vito.oa.act.constant.OaActContants;
/**
 * 审批图表统计，提供查询所需参数
 * @author xuezhennan
 * 
 */
public class OaActStatisticsModel implements Serializable {
	private static final long serialVersionUID = 1475905195447275991L;
	/**
	 * 流程Key
	 */
	private String procKey;
	/**
	 * 流程名称
	 */
	private String procName;
	/**
	 * 统计开始时间
	 */
	private String procStartTime;
	/**
	 * 统计结束时间
	 */
	private String procEndTime;
	/**
	 * 统计的审批单状态，默认通过状态：{@value OaActContants#PROCESS_STATUS_END}
	 */
	private String procStatus = OaActContants.PROCESS_STATUS_END;
	/**
	 * 统计人ID
	 */
	@JsonIgnore
	private String statsUserId;	
	/**
	 * 统计的父部门ID
	 */
	@JsonIgnore
	private String statsDeptId;
	/**
	 * 统计的流程的表tableKey
	 */
	@JsonIgnore
	private String statsTable;
	/**
	 * 表主键字段
	 */
	@JsonIgnore
	private String statsPkCol;
	/**
	 * 需要统计的字段
	 */
	@JsonIgnore
	private String statsCol;
	/**
	 * 给定统计的横坐标
	 */
	private String xType;
	/**
	 * 给定统计的纵坐标
	 */
	private String yType;
	/**
	 * 横坐标中文名
	 */
	private String xTypeName;
	/**
	 * 纵坐标中文名
	 */
	private String yTypeName;
	/**
	 * 统计规则的日期格式
	 */
	@JsonIgnore
	private String typeFormat = "yyyy-MM-dd";
	/**
	 * 统计结果：X轴
	 */
	private List<String> xData;
	/**
	 * 统计结果：Y轴,Y轴结果与X轴一一对应
	 * @see #setxData(List)
	 */
	private List<Number> yData;

	public String getProcName() {
		return procName;
	}

	public void setProcName(String procName) {
		this.procName = procName;
	}

	public String getProcKey() {
		return procKey;
	}

	public void setProcKey(String procKey) {
		this.procKey = procKey;
	}

	public String getProcStartTime() {
		return procStartTime;
	}

	public void setProcStartTime(String procStartTime) {
		this.procStartTime = procStartTime;
	}

	public String getProcEndTime() {
		return procEndTime;
	}

	public void setProcEndTime(String procEndTime) {
		this.procEndTime = procEndTime;
	}

	public String getProcStatus() {
		return procStatus;
	}

	public void setProcStatus(String procStatus) {
		this.procStatus = procStatus;
	}

	public String getStatsUserId() {
		return statsUserId;
	}

	public void setStatsUserId(String statsUserId) {
		this.statsUserId = statsUserId;
	}

	public String getStatsDeptId() {
		return statsDeptId;
	}

	public void setStatsDeptId(String statsDeptId) {
		this.statsDeptId = statsDeptId;
	}

	public String getStatsTable() {
		return statsTable;
	}

	public void setStatsTable(String statsTable) {
		this.statsTable = statsTable;
	}

	public String getStatsPkCol() {
		return statsPkCol;
	}

	public void setStatsPkCol(String statsPkCol) {
		this.statsPkCol = statsPkCol;
	}

	public String getStatsCol() {
		return statsCol;
	}

	public void setStatsCol(String statsCol) {
		this.statsCol = statsCol;
	}

	public String getxTypeName() {
		return xTypeName;
	}

	public void setxTypeName(String xTypeName) {
		this.xTypeName = xTypeName;
	}

	public String getyTypeName() {
		return yTypeName;
	}

	public void setyTypeName(String yTypeName) {
		this.yTypeName = yTypeName;
	}

	public String getxType() {
		return xType;
	}

	public void setxType(String xType) {
		this.xType = xType;
	}

	public String getyType() {
		return yType;
	}

	public void setyType(String yType) {
		this.yType = yType;
	}

	public List<String> getxData() {
		return xData;
	}
	/**
	 * 初始化xData后，依据其大小实例yData,
	 * 方便统计、制表时根据索引一一对应
	 * @param xData
	 */
	public void setxData(List<String> xData) {
		this.xData = xData;
		int size = xData.size();
		yData = new LinkedList<Number>();
		for(int i=0;i<=size;i++){
			//初始化对应y坐标值为0
			yData.add(0);
		}
	}

	public List<Number> getyData() {
		return yData;
	}

	public void setyData(List<Number> yData) {
		this.yData = yData;
	}
	
	public String getTypeFormat() {
		return typeFormat;
	}

	public void setTypeFormat(String typeFormat) {
		this.typeFormat = typeFormat;
	}

}
